package com.start.demo.account.service;

import org.springframework.cache.annotation.Cacheable;

import com.start.demo.account.model.Account;

public interface AccountService {

	/**
	 * 根据用户名查询用户 即 @Cacheable(value="accountCache")，，当调用这个方法的时候，会从一个名叫
	 * accountCache 的缓存中查询，如果没有，则执行实际的方法（即查询数据库），并将执行的结果存入缓存中，否则返回缓存中的对象。这里的缓存中的
	 * key 就是参数 name，value 就是 Account 对象。"account*Cache"缓存是在 spring*.xml 中定义的名称。
	 * 我们还需要一个 spring 的配置文件来支持基于注释的缓存 <cache:annotation-driven />
	 * 
	 * @param name
	 * @return
	 */

	// 使用了一个缓存名叫 accountCache
	public Account getAccountByName(String name);

	/**
	 * 根据ID查询用户
	 * 
	 * @param id
	 * @return
	 */

	public Account getAccountById(Integer id);

	/**
	 * 根据id更新name
	 * 
	 * @param account
	 */
	public void updateAccountById(Account account);
}
